package org.japo.java.swing.igu;

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import org.japo.java.swing.listeners.GEA;

public class IGU extends JFrame {

    private JTextField txfEuro;
    private JTextField txfDolar;
    private final double FACTOR_CONVERSION = 1.32;

    private final String FAM_LBL = "Calibri";
    private final int EST_LBL = Font.PLAIN;
    private final int TAM_LBL = 40;
    
    //Dimensiones
    Dimension dimLabel = new Dimension(70, 30);
    Dimension dimTexto = new Dimension(150, 30);

    public IGU() {
        iniciarComponentes();

    }

    private void iniciarComponentes() {
        //Instanciar panel principal
        JPanel pnlPrincipal = new JPanel();
        
        //Modifica la separacion del layout
        FlowLayout lf = (FlowLayout) pnlPrincipal.getLayout();
        lf.setHgap(10);
        lf.setVgap(10);

        //Declarar la fuente
        Font f = new Font(FAM_LBL, EST_LBL, TAM_LBL);

        //Instanciar el Gestor de eventos de accion
        GEA gea = new GEA(this);

        //Declarar campos que vamos a utilizar
        //Campo de texto del dolar
        txfDolar = new JTextField("0.0");
        txfDolar.setFont(f);
        txfDolar.setHorizontalAlignment(JLabel.RIGHT);
        txfDolar.setPreferredSize(dimTexto);
        txfDolar.addActionListener(gea);
//        txfDolar.addActionListener(gea);
        pnlPrincipal.add(txfDolar);

        //Etiqueta del Euro
        JLabel lblDolar = new JLabel("DOLAR");
        lblDolar.setFont(f);
        lblDolar.setPreferredSize(dimLabel);
        pnlPrincipal.add(lblDolar);

        //Campo de texto del euro
        txfEuro = new JTextField("0.0");
        txfEuro.setFont(f);
        txfEuro.setHorizontalAlignment(JLabel.RIGHT);
        txfEuro.setPreferredSize(dimTexto);
        txfEuro.addActionListener(gea);
        pnlPrincipal.add(txfEuro);

        //Etiqueta del Euro
        JLabel lblEuro = new JLabel("EURO");
        lblEuro.setFont(f);
        lblEuro.setPreferredSize(dimLabel);
        pnlPrincipal.add(lblEuro);

        //Instanciar ventana
        setTitle("Conversor Euro - Dolar");
        setResizable(false);
        setContentPane(pnlPrincipal);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setSize(300, 130);
    }
    
    public void procesarConversion(ActionEvent ae){
        Object o = ae.getSource();
        
        if (o.equals(txfEuro) ) {
            convertirEuros();
        } else {
            convertirDolares();
            
        }
        
    }

    private void convertirEuros() {
        try {
            String euros = txfEuro.getText();
            double dEuros = Double.parseDouble(euros);
            double dDolar = dEuros * FACTOR_CONVERSION;
            String tDolar = dDolar + "";
            txfDolar.setText(tDolar);
            
        } catch (Exception e) {
           txfEuro.setText("Que haces paquete????");
        }

    
    }

    private void convertirDolares() {
        try {
            String dolares = txfDolar.getText();
            double dDolar = Double.parseDouble(dolares);
            double dEuros = dDolar / FACTOR_CONVERSION;
            String tEuros = dEuros + "";
            txfEuro.setText(tEuros);
            
        } catch (Exception e) {
           txfEuro.setText("Que haces paquete????");
        }

    
    }

}
